package org.txazo.pattern.template;

public abstract class AbstractTemplate {

	/** 模板方法 */
	public final void templateMethod() {
		abstractMethod();
		concreteMethod();
		hookMethod();
	}

	private void concreteMethod() {
		System.out.println("concreteMethod");
	}

	/** 抽象方法 */
	protected abstract void abstractMethod();

	/** 钩子方法，提供默认实现 */
	protected void hookMethod() {
	}

}
